//using System;

//// 使用示例
//class Example
//{
//    public static void UsageExample()
//    {
//        EventDispatcher dispatcher = new EventDispatcher();
        
//        // 示例1：使用EventListenerManager自动管理
//        using (var listenerManager = dispatcher.CreateListenerManager())
//        {
//            // 注册多个事件
//            listenerManager.RegisterEvent<StringEventArgs>((args) =>
//            {
//                Console.WriteLine($"收到字符串事件: {args.Message}");
//            });
            
//            listenerManager.RegisterEvent<UserEventArgs>((args) =>
//            {
//                Console.WriteLine($"用户 {args.UserName} 执行了 {args.Action}");
//            });
            
//            listenerManager.RegisterEvent<LoginEventArgs>((args) =>
//            {
//                Console.WriteLine($"登录尝试: {args.Username}, 成功: {args.Success}");
//            });
            
//            // 触发事件
//            dispatcher.DispatchEvent(new StringEventArgs("重要消息", 1, dispatcher));
//            dispatcher.DispatchEvent(new UserEventArgs("123", "张三", "登录", dispatcher));
//            dispatcher.DispatchEvent(new LoginEventArgs("zhangsan", "password123", true, dispatcher));
            
//            // 自动清理（using语句结束时）
//        }
        
//        // 示例2：手动管理
//        var manager = dispatcher.CreateListenerManager();
        
//        manager.RegisterEvent<StringEventArgs>((args) =>
//        {
//            Console.WriteLine($"手动管理: {args.Message}");
//        });
        
//        dispatcher.DispatchEvent(new StringEventArgs("测试消息", 0, dispatcher));
        
//        // 手动清理
//        manager.Dispose();
//    }
//}